import { createApp } from 'vue'
import { createPinia } from 'pinia'
import router from './router'
import App from './App.vue'

// Element Plus样式
import 'element-plus/dist/index.css'
import 'element-plus/theme-chalk/dark/css-vars.css'

// 全局样式
import '@/assets/styles/reset.scss'
import '@/assets/styles/common.scss'

// 进度条样式
import 'nprogress/nprogress.css'

// 图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

/**
 * 前端应用入口文件
 * @author cencat
 * @description 固定商家场景多租户SaaS企业综合管理系统前端应用初始化
 * @createTime 2024-01-01
 */

// 创建Vue应用实例
const app = createApp(App)

// 注册Element Plus图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}

// 注册插件
app.use(createPinia())
app.use(router)

// 全局错误处理
app.config.errorHandler = (err, vm, info) => {
  console.error('全局错误:', err)
  console.error('错误信息:', info)
  console.error('组件实例:', vm)
}

// 全局警告处理
app.config.warnHandler = (msg, vm, trace) => {
  console.warn('全局警告:', msg)
  console.warn('组件实例:', vm)
  console.warn('组件追踪:', trace)
}

// 挂载应用
app.mount('#app')

// 开发环境下的调试信息
if (import.meta.env.DEV) {
  console.log('🚀 Cencat SaaS 企业管理系统启动成功')
  console.log('📦 Vue版本:', app.version)
  console.log('🌍 环境模式:', import.meta.env.MODE)
  console.log('🔗 API地址:', import.meta.env.VITE_API_BASE_URL || '/api')
}